package com.xjgc.rest.ao.sap_real;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 发票预制申请
 * @author: 小逗号
 * @date: 2023-11-27
 * @description:
 * @since:
 */
@Data
@XStreamAlias("ROOT")
public class FpyzSqMir7 implements Serializable{
    private static final long serialVersionUID = 1L;

    /**
     * 外围系统唯一标识IDAPPLY_ID
     */
    @XStreamAlias("HEAD_ID")
    private String headId;
    /**
     * 凭证中的凭证日期
     */
    @XStreamAlias("BLDAT")
    private String bldat;
    /**
     * 凭证中的过帐日期
     */
    @XStreamAlias("BUDAT")
    private String budat;
    /**
     * 用于到期日计算的基准日期
     */
    @XStreamAlias("ZFBDT")
    private String zfbdt;
    /**
     * 公司代码
     */
    @XStreamAlias("BUKRS")
    private String bukrs;
    /**
     * 货币码
     */
    @XStreamAlias("WAERS")
    private String waers;
    /**
     * 税务代码
     */
    @XStreamAlias("MWSKZ")
    private String mwskz;
    /**
     * 人工接收的税金额
     */
    @XStreamAlias("WMWST")
    private String wmwst;
    /**
     * 汇率
     */
    @XStreamAlias("KURSF")
    private String kursf;
    /**
     * 凭证货币的总发票金额
     */
    @XStreamAlias("RMWWR")
    private String rmwwr;


    /**
     * 参考凭证编号
     */
    @XStreamAlias("XBLNR")
    private String xblnr;
    /**
     * 项目文本
     */
    @XStreamAlias("SGTXT")
    private String sgtxt;
    /**
     * 凭证抬头文本
     */
    @XStreamAlias("BKTXT")
    private String bktxt;
    /**
     * 税率代码
     */
    @XStreamAlias("ZZFI001")
    private String zzfi001;
    /**
     * 税项
     */
    @XStreamAlias("ZZFI002")
    private String zzfi002;

    /**
     * 日期
     */
    @XStreamAlias("DATUM")
    private String datum;
    /**
     * 时间
     */
    @XStreamAlias("UZEIT")
    private String uzeit;


    /**
     * 明细
     *
     * @XStreamImplicit(itemFieldName = "item")
     * 省去list外衣,指定list元素节点名称='item'
     * 生成多个同级并列 <item><item/>
     */
    @XStreamImplicit(itemFieldName = "item")
    private List<Item> itemList;
    /**
     * 挂接
     */
    @XStreamImplicit(itemFieldName = "fpgj")
    private List<Fpgj> fpgjList;


    @Data
    static class Item implements Serializable {
        private static final long serialVersionUID = 1L;

        /**
         * 采购凭证号
         */
        @XStreamAlias("EBELN")
        private String ebeln = "";
        /**
         * 采购凭证的项目编号
         */
        @XStreamAlias("EBELP")
        private String ebelp = "";
        /**
         * 凭证货币金额
         */
        @XStreamAlias("WRBTR")
        private String wrbtr = "";
        /**
         * 数量
         */
        @XStreamAlias("MENGE")
        private String menge = "";
        /**
         * 物料凭证编号
         */
        @XStreamAlias("REF_MBLNR")
        private String refMblnr = "";

        /**
         * 物料凭证中的项目
         */
        @XStreamAlias("REF_MBLPO")
        private String refMblpo = "";

        /**
         * 物料凭证年度
         */
        @XStreamAlias("REF_MJAHR")
        private String refMjahr = "";
    }

    @Data
    static class Fpgj implements Serializable {
        private static final long serialVersionUID = 1L;
        @XStreamAlias("ID")
        private String id = "";
        /**
         * 发票代码
         */
        @XStreamAlias("INVOICE_CODE")
        private String invoiceCode = "";
        /**
         * 发票号码
         */
        @XStreamAlias("INVOICE_NO")
        private String invoiceNo = "";
        /**
         * 是否认证
         */
        @XStreamAlias("SFRZ")
        private String sfrz = "";
    }
}
